+2008-03-26 Federico Mena Quintero <federico@novell.com>
+
+ * gtk/gtkfilechooserentry.c (commit_completion_and_refresh): New
+ helper function; factored out from the functions that commit the
+ current suggested autocompletion and that refresh the entry's paths.
+ (gtk_file_chooser_entry_activate): Use commit_completion_and_refresh().
+ (_gtk_file_chooser_entry_get_file_part): Likewise.
+ (_gtk_file_chooser_entry_get_current_folder): Likewise. This
+ makes the entry have the correct paths when *not* using any form
+ of completion (and makes the file chooser work when clicking the
+ OK button).
+
2008-03-25 Richard Hult <richard@imendio.com>
* gdk/quartz/gdkevents-quartz.c:
}
static void
-gtk_file_chooser_entry_activate (GtkEntry *entry)
+commit_completion_and_refresh (GtkFileChooserEntry *chooser_entry)
{
- GtkFileChooserEntry *chooser_entry = GTK_FILE_CHOOSER_ENTRY (entry);
-
if (chooser_entry->has_completion)
{
gtk_editable_set_position (GTK_EDITABLE (entry),
}
refresh_current_folder_and_file_part (chooser_entry, REFRESH_WHOLE_TEXT);
+}
+
+static void
+gtk_file_chooser_entry_activate (GtkEntry *entry)
+{
+ GtkFileChooserEntry *chooser_entry = GTK_FILE_CHOOSER_ENTRY (entry);
+ commit_completion_and_refresh (chooser_entry);
GTK_ENTRY_CLASS (_gtk_file_chooser_entry_parent_class)->activate (entry);
}
const GtkFilePath *
_gtk_file_chooser_entry_get_current_folder (GtkFileChooserEntry *chooser_entry)
{
- if (chooser_entry->has_completion)
- {
- gtk_editable_set_position (GTK_EDITABLE (chooser_entry),
- GTK_ENTRY (chooser_entry)->text_length);
- }
+ commit_completion_and_refresh (chooser_entry);
return chooser_entry->current_folder_path;
}
const gchar *
_gtk_file_chooser_entry_get_file_part (GtkFileChooserEntry *chooser_entry)
{
- if (chooser_entry->has_completion)
- {
- gtk_editable_set_position (GTK_EDITABLE (chooser_entry),
- GTK_ENTRY (chooser_entry)->text_length);
- }
-
- refresh_current_folder_and_file_part (chooser_entry, REFRESH_WHOLE_TEXT);
-
+ commit_completion_and_refresh (chooser_entry);
return chooser_entry->file_part;
}